package command_pattern.ex2;

import java.io.Serializable;

/**
 * @author 申书航
 * @version 1.0
 * 命令抽象类，所有具体命令都应继承该类
 */
public abstract class Command implements Serializable {

    protected String name; // 命令名称

    protected String args; // 命令参数

    protected ConfigOperator config; // 配置操作对象

    /**
     * 执行命令的抽象方法，具体实现由子类定义
     */
    public abstract void execute();

    /**
     * 重载的执行方法，允许传入参数
     * @param args 命令参数
     */
    public void execute(String args) {
        this.args = args;
        execute();
    }

    /**
     * 构造方法，初始化命令名称和配置操作对象
     * @param name 命令名称
     * @param config 配置操作对象
     */
    public Command(String name, ConfigOperator config) {
        this.name = name;
        this.config = config;
    }
}
